package cn.iocoder.yudao.module.erp.controller.admin.planinfo.vo;

import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import cn.iocoder.yudao.module.erp.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 每日计划 Response VO")
@Data
@ExcelIgnoreUnannotated
public class PlanBuyInfoRespVO {

    @Schema(description = "id", example = "13195")
    private Long id;

    @Schema(description = "公司", example = "5674")
    private Long companyId;

    @ExcelProperty("月度计划")
    private String companyName;

    @Schema(description = "计划日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("计划日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate nowTime;

    @Schema(description = "托运方式", requiredMode = Schema.RequiredMode.REQUIRED  )
    @ExcelProperty(value = "托运方式",converter = DictConvert.class)
    @DictFormat(DictTypeConstants.LNG_TRANSPORT_TYPE)
    private Integer checkType;

    @Schema(description = "管输费", requiredMode = Schema.RequiredMode.REQUIRED, example = "18265")
 /*   @ExcelProperty("管输费")*/
    private BigDecimal linePrice;

    @Schema(description = "管线")
    @ExcelProperty("管线")
    private String lineInfo;

    @Schema(description = "气源")
    @ExcelProperty("气源")
    private String gasResource;

    @Schema(description = "上载点", requiredMode = Schema.RequiredMode.REQUIRED, example = "32367")
  //  @DictFormat("system_user_sex") // TODO 代码优化：建议设置到对应的 DictTypeConstants 枚举类中
    private Long upId;

    @Schema(description = "下载点", requiredMode = Schema.RequiredMode.REQUIRED, example = "20875")
   // @DictFormat("infra_config_type") // TODO 代码优化：建议设置到对应的 DictTypeConstants 枚举类中
    private Long downloadId;


    @Schema(description = "托运商")
    private String checkCompany;


    @Schema(description = "销售客户", example = "5563")
    private Long saleCustomerId;


  /*  @ExcelProperty(value = {"销售信息","下载点"})
    private String downloadName;

    @ExcelProperty({"销售信息","销售客户"})
    private String saleCustomerName;

    @Schema(description = "销售单价（元/方）", example = "30134")
    @ExcelProperty({"销售信息","销售单价（元/方）"})
    private BigDecimal salePrice;



    @Schema(description = "提报数量（万方）", example = "14364")
    @ExcelProperty({"销售信息","提报数量（万方）"})
    private BigDecimal saleSubCount;

    @Schema(description = "下载量（万方）", example = "24223")
    @ExcelProperty({"销售信息","下载量（万方）"})
    private BigDecimal saleRealCount;

    @Schema(description = "实际销售金额（元）", example = "15750")
    @ExcelProperty({"销售信息","总销售金额（元）"})
    private BigDecimal saleAllCount;

    @Schema(description = "销售合同", example = "8563")
    private Long saleContractId;

    @Schema(description = "销售合同", example = "8563")
    @ExcelProperty({"销售信息","销售合同"})
    private String saleContractName;

    @Schema(description = "销售居间费（元/方）", example = "32069")
    @ExcelProperty({"销售信息","销售居间费（元/方）"})
    private BigDecimal saleOtherPrice;

    @Schema(description = "销售居间额（元/方）", example = "32069")
    @ExcelProperty({"销售信息","销售居间额（元/方）"})
    private BigDecimal saleOtherCount;

    @Schema(description = "实际销售单价（元/方）", example = "14843")
   *//* @ExcelProperty("实际销售单价（元/方）")*//*
    private BigDecimal saleRealPrice;

    @Schema(description = "销售对账状态"  )
    private Integer saleAccountStatus;

    @Schema(description = "销售发票状态")
    private Integer saleBillStatus;

    @Schema(description = "备注")
    @ExcelProperty({"销售信息","备注"})
    private String saleRemark;*/

    @Schema(description = "采购客户", requiredMode = Schema.RequiredMode.REQUIRED, example = "16230")
    private Long buyCustomerId;


    @ExcelProperty(value = {"采购信息","上载点"})
    private String upName;


    @ExcelProperty({"采购信息","采购客户"})
    private String buyCustomerName;

    @Schema(description = "采购单价（元/方）", requiredMode = Schema.RequiredMode.REQUIRED, example = "17797")
    @ExcelProperty({"采购信息","采购单价（元/方）"})
    private BigDecimal buyPrice;


    @Schema(description = "提报数量（万方）", requiredMode = Schema.RequiredMode.REQUIRED, example = "24205")
    @ExcelProperty({"采购信息","提报数量（万方）"})
    private BigDecimal buySubCount;

    @Schema(description = "上载量（万方）", requiredMode = Schema.RequiredMode.REQUIRED, example = "20424")
    @ExcelProperty({"采购信息","上载量（万方）"})
    private BigDecimal buyRealCount;

    @Schema(description = "实际采购金额（元）", requiredMode = Schema.RequiredMode.REQUIRED, example = "130")
    @ExcelProperty({"采购信息","采购金额（元）"})
    private BigDecimal buyAllCount;

    @Schema(description = "采购合同", example = "20202")
    private Long buyContractId;

    @Schema(description = "采购合同", example = "20202")
    @ExcelProperty({"采购信息","采购合同"})
    private String buyContractName;

    @Schema(description = "采购居间费（元/方）", example = "31282")
    @ExcelProperty({"采购信息","居间单价（元/方）"})
    private BigDecimal buyOtherPrice;

    @Schema(description = "采购居间额（元/方）", example = "31282")
    @ExcelProperty({"采购信息","居间费（元/方）"})
    private BigDecimal buyOtherCount;

    @Schema(description = "实际采购单价（元/方）", requiredMode = Schema.RequiredMode.REQUIRED, example = "19079")
/*    @ExcelProperty("实际采购单价（元/方）")*/
    private BigDecimal buyRealPrice;


    @Schema(description = "采购对账状态"  )
/*    @ExcelProperty("采购对账状态")*/
    private Integer buyAccountStatus;

    @Schema(description = "采购发票状态")
 /*   @ExcelProperty("采购发票状态")*/
    private Integer buyBillStatus;

    @Schema(description = "备注"  )
    @ExcelProperty({"采购信息","备注"})
    private String buyRemark;

    @Schema(description = "状态"  )
/*    @ExcelProperty("状态")*/
    private Integer status;

    @Schema(description = "备注", example = "你猜")
/*    @ExcelProperty("备注")*/
    private String remark;



    @Schema(description = "毛差", example = "3141")
/*    @ExcelProperty("毛差")*/
    private BigDecimal gainCount;


    @Schema(description = "利润参考")
/*    @ExcelProperty("利润参考")*/
    private BigDecimal profit;




    @Schema(description = "附件 URL" )
    private String fileUrl;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
/*    @ExcelProperty("创建时间")*/
    private LocalDateTime createTime;


    private String buyFileUrl;

    private String saleFileUrl;







}